using System.Collections.Generic;
using UnityEngine;

public class UIBasePanel : MonoBehaviour
{
    protected UIInfo UIInfo;//存储UI的信息
    public bool IsShow { get; private set; }//当前UI是否正在展示
    protected GameObject PanelRoot;//当前UI的根节点
    public virtual void OnInit(UIInfo info)
    {
        UIInfo = info;
        PanelRoot = transform.Find("Root").gameObject;
    }
    public virtual void OnOpen()//开启UI，由UIManager进行控制
    {
        if (!IsShow)
        {
            ShowUI();
        }

    }
    public virtual void OnClose()//关闭UI，由UIManager进行控制
    {
        if (IsShow)
        {
            HideUI();

            if (!UIInfo.IsCache)
            {
                Destroy(gameObject);
            }

        }

    }
    public virtual void ShowUI()//展示UI，播放UI入场动画
    {
        IsShow = true;
        PanelRoot.SetActive(true);
    }
    public virtual void HideUI()//隐藏UI，播放UI关闭动画
    {
        IsShow = false;
        PanelRoot.SetActive(false);
    }
}


